package collection;

import charactor.Hero;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * @Author: Andy
 * @Date: 2021年10月30日 6:35
 * @Description:
 */
public class TestCollection {
    public static void main(String[] args) {
        ArrayList heros = new ArrayList();
//        heros.add(new Hero("盖伦"));
//        heros.add(new Hero());
//        System.out.println(heros.size());

        // 把5个对象加入到ArrayList中
        for (int i = 0; i < 5; i++) {
            heros.add(new Hero("hero " + i));
        }
//        System.out.println(heros);
        // 第一种遍历 for循环
        System.out.println("--------for 循环-------");
        for (int i = 0; i < heros.size(); i++) {
            Hero h = (Hero)heros.get(i);
            System.out.println(h);
        }

        //第二种遍历，使用迭代器
        System.out.println("--------使用while的iterator-------");
        Iterator<Hero> it= heros.iterator();
        //从最开始的位置判断"下一个"位置是否有数据
        //如果有就通过next取出来，并且把指针向下移动
        //直到"下一个"位置没有数据
        while(it.hasNext()){
            Hero h = it.next();
            System.out.println(h);
        }
        //迭代器的for写法
        System.out.println("--------使用for的iterator-------");
        for (Iterator<Hero> iterator = heros.iterator(); iterator.hasNext();) {
            Hero hero = (Hero) iterator.next();
            System.out.println(hero);
        }

        // 第三种，增强型for循环
//        System.out.println("--------增强型for循环-------");
//        for (Hero h : heros) {
//            System.out.println(h);
//        }

        // 在指定位置增加对象
//        Hero specialHero = new Hero("special hero");
//        heros.add(3, specialHero);
//        System.out.println(heros.toString());
//        System.out.println("使用clear清空");
//        heros.clear();
//        System.out.println("ArrayList heros:\t" + heros);
    }
}
